#pragma once
#include <QMutex>
#include <QDebug>
#include <map>

class SystemInfomation
{
public:
    SystemInfomation();
    ~SystemInfomation();

#ifdef Q_OS_MAC
    static std::map<std::string, std::string> parse_lscpu_etc(const std::string& name, char delimiter);
    static std::string parse_rame_etc(const std::string& name);
#endif

    static QString get_unique_id();                 // uuid
    static QString get_cpu_info_from_registry();    // cpu
    static QString get_ram_info();                  // ram
    static QString get_display_info();              // display
    static QString getVersion();                    // version
    static QString getCipher();                     // Cipher
    static QString genTimeStamp();                  // gen timeStamp
    static QString get_signature(const QString& timpeStamp, const QString& uuid);                 // sign
    static QString get_nonce();                     // nonce
    static QString m_sUuid;
    static quint64 m_timeStamp;
};
